-- @Author: 作者QQ2308873645
-- @Date:   2021-12-12 17:43:51
-- @Last Modified by:   作者QQ2308873645
-- @Last Modified time: 2022-06-08 19:06:03
-- @Author: 作者QQ2308873645
-- @Date:   2021-11-27 13:12:31
-- @Last Modified by:   作者QQ2308873645
-- @Last Modified time: 2021-12-14 21:20:26

function 任务控制类:完成通天塔(id组, 层数)
    层数 = 层数 + 1
    for n = 1, #id组 do
        if 玩家数据[id组[n]] ~= nil then
            self.符合抓鬼id = true
            if self.符合抓鬼id then
                if 活动进度[id组[n]] == nil then
                  活动进度[id组[n]]={师门=0,抓鬼=0,鬼王=0,门派闯关=0,皇宫飞贼=0,知了=0,通天塔=0,车迟斗法=0,乌鸡国=0,高级藏宝图=0,玲珑宝图=0,新手泡泡=0,夏日炎炎=0,年兽活动=0,地煞活动=0,天罡神器=0,任务链=0,轮回镜=0}
                end
                if 活动进度[id组[n]].通天塔 < 20 then
                 活动进度[id组[n]].通天塔 = 活动进度[id组[n]].通天塔 + 1
                end
                if 层数 <= 50 then
                   local 奖励物品 = {}
                   local 奖励概率 = {}
                   local 奖励数量 = {}
                   local 经验 = f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以下", "经验")+0
                   local 银子 = f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以下", "银子")+0
                   local 奖励总概率 = f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以下", "奖励总概率")+0
                   for i=1,10 do
                       奖励物品[i]=f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以下", "物品["..tostring(i).."]")
                       奖励概率[i]=f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以下", "概率["..tostring(i).."]")+0
                       奖励数量[i]=f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以下", "数量["..tostring(i).."]")+0
                   end
                   self.添加经验 = 层数*经验
                   self.添加银子 = 层数*银子
                   角色处理类:添加经验(玩家数据[id组[n]],self.添加经验,"通天塔")
                   角色处理类:添加银子(玩家数据[id组[n]],self.添加银子,"通天塔")
                   if 玩家数据[id组[n]].召唤兽.数据.参战 ~= 0 then
                       玩家数据[id组[n]].召唤兽:添加经验(math.floor(self.添加经验 * 0.05), id组[n], 玩家数据[id组[n]].召唤兽.数据.参战, 10)
                   end
                   local 奖励次数 = 0
                       local 物品名称 = ""
                       local 随机奖励 = math.random(奖励总概率)
                       local 数量 = 0
                       if 随机奖励<=奖励概率[1] then
                          物品名称 = 奖励物品[1]
                          数量 = math.random(1,奖励数量[1])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[2] then
                          物品名称 = 奖励物品[2]
                          数量 = math.random(1,奖励数量[2])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[3] then
                          物品名称 = 奖励物品[3]
                          数量 = math.random(1,奖励数量[3])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[4] then
                          物品名称 = 奖励物品[4]
                          数量 = math.random(1,奖励数量[4])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[5] then
                          物品名称 = 奖励物品[5]
                          数量 = math.random(1,奖励数量[5])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[6] then
                          物品名称 = 奖励物品[6]
                          数量 = math.random(1,奖励数量[6])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[7] then
                          物品名称 = 奖励物品[7]
                          数量 = math.random(1,奖励数量[7])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[8] then
                          物品名称 = 奖励物品[8]
                          数量 = math.random(1,奖励数量[8])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[9] then
                          物品名称 = 奖励物品[9]
                          数量 = math.random(1,奖励数量[9])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[10] then
                          物品名称 = 奖励物品[10]
                          数量 = math.random(1,奖励数量[10])
                          奖励次数 = 奖励次数 + 1
                       end
                       if 物品名称 ~= "" and 物品名称 == "高级魔兽要诀" then
                          local 技能=取高级兽诀名称()
                          道具处理类:给予道具(id组[n],物品名称,nil,技能)
                       elseif 物品名称 ~= "" and 物品名称 == "特殊魔兽要诀" then
                          local 技能=取特殊兽诀名称()
                          道具处理类:给予道具(id组[n],物品名称,nil,技能)
                       else
                           道具处理类:给予道具(id组[n],物品名称,nil,nil,数量)
                       end
                   道具处理类:系统兽决存仓(id组[n])
                   道具处理类:系统仓库处理(id组[n])
                   广播消息("#hd/".."#S/(通天塔)".."#g/ " .. 玩家数据[id组[n]].角色.名称 .. "#y/成功战胜了通天塔#r/" .. 层数 .. "#y/层妖魔，获得了#r/"..物品名称.."#y/物品奖励".."#"..math.random(110))
                else
                   local 奖励物品 = {}
                   local 奖励概率 = {}
                   local 奖励数量 = {}
                   local 经验 = f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以上", "经验")+0
                   local 银子 = f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以上", "银子")+0
                   local 奖励总概率 = f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以上", "奖励总概率")+0
                   for i=1,10 do
                       奖励物品[i]=f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以上", "物品["..tostring(i).."]")
                       奖励概率[i]=f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以上", "概率["..tostring(i).."]")+0
                       奖励数量[i]=f函数.读配置(ServerDirectory..[[配置文件\内置活动奖励\通天塔.txt]], "通天塔50层以上", "数量["..tostring(i).."]")+0
                   end
                   self.添加经验 = 层数*经验
                   self.添加银子 = 层数*银子
                   角色处理类:添加经验(玩家数据[id组[n]],self.添加经验,"通天塔")
                   角色处理类:添加银子(玩家数据[id组[n]],self.添加银子,"通天塔")
                   if 玩家数据[id组[n]].召唤兽.数据.参战 ~= 0 then
                       玩家数据[id组[n]].召唤兽:添加经验(math.floor(self.添加经验 * 0.05), id组[n], 玩家数据[id组[n]].召唤兽.数据.参战, 10)
                   end
                   local 奖励次数 = 0
                       local 物品名称 = ""
                       local 随机奖励 = math.random(奖励总概率)
                       local 数量 = 0
                       if 随机奖励<=奖励概率[1] then
                          物品名称 = 奖励物品[1]
                          数量 = math.random(1,奖励数量[1])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[2] then
                          物品名称 = 奖励物品[2]
                          数量 = math.random(1,奖励数量[2])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[3] then
                          物品名称 = 奖励物品[3]
                          数量 = math.random(1,奖励数量[3])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[4] then
                          物品名称 = 奖励物品[4]
                          数量 = math.random(1,奖励数量[4])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[5] then
                          物品名称 = 奖励物品[5]
                          数量 = math.random(1,奖励数量[5])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[6] then
                          物品名称 = 奖励物品[6]
                          数量 = math.random(1,奖励数量[6])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[7] then
                          物品名称 = 奖励物品[7]
                          数量 = math.random(1,奖励数量[7])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[8] then
                          物品名称 = 奖励物品[8]
                          数量 = math.random(1,奖励数量[8])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[9] then
                          物品名称 = 奖励物品[9]
                          数量 = math.random(1,奖励数量[9])
                          奖励次数 = 奖励次数 + 1
                       elseif 随机奖励<=奖励概率[10] then
                          物品名称 = 奖励物品[10]
                          数量 = math.random(1,奖励数量[10])
                          奖励次数 = 奖励次数 + 1
                       end
                       if 物品名称 ~= "" and 物品名称 == "高级魔兽要诀" then
                          local 技能=取高级兽诀名称()
                          道具处理类:给予道具(id组[n],物品名称,nil,技能)
                       elseif 物品名称 ~= "" and 物品名称 == "特殊魔兽要诀" then
                          local 技能=取特殊兽诀名称()
                          道具处理类:给予道具(id组[n],物品名称,nil,技能)
                       else
                           道具处理类:给予道具(id组[n],物品名称,nil,nil,数量)
                       end
                   道具处理类:系统兽决存仓(id组[n])
                   道具处理类:系统仓库处理(id组[n])
                   广播消息("#hd/".."#S/(通天塔)".."#g/ " .. 玩家数据[id组[n]].角色.名称 .. "#y/成功战胜了通天塔#r/" .. 层数 .. "#y/层妖魔，获得了#r/"..物品名称.."#y/物品奖励".."#"..math.random(110))
                end
                通天塔数据[id组[n]].层数 = 通天塔数据[id组[n]].层数 + 1
            end
        end
    end
 end
function 任务控制类:挑战通天塔(id, 层数)
    if 玩家数据[id].队伍 == 0 then
        发送数据(玩家数据[id].连接id, 7, "#y/此活动必须组队完成")
        return 0
    end
    self.重复名称 = ""
    local 上限 = 0
    for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
        if (玩家数据[队伍数据[玩家数据[id].队伍].队员数据[1]].角色.等级 - 玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.等级) > 10 or (玩家数据[队伍数据[玩家数据[id].队伍].队员数据[1]].角色.等级 - 玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.等级) < -10 then
           广播队伍消息(id, 7, "#y/队伍平均等级不能超过10级才可以进行此活动")
           return 0
        end
        if 通天塔数据[玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].id] == nil then
            通天塔数据[玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].id] = {层数=0,名称=玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.名称}
        end
        if 通天塔数据[玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].id].层数 ~= 层数 then
            self.重复名称 = 玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.名称
        end
        if 通天塔数据[玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].id].层数 >=400 then
            self.重复名称 = 玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.名称
            上限 = 1
        end
    end
    if 上限 == 1 then
        广播队伍消息(id, 7, "#g/" .. self.重复名称 .. "#y/通天塔已经完成了100层无法继续此活动")
        return 0
    end
    if self.重复名称 ~= "" then
        广播队伍消息(id, 7, "#g/" .. self.重复名称 .. "#y/层数不同不能一起挑战")
        return 0
    end
    战斗准备类:进入处理(id, 888991, 层数, 层数)
 end
